MyBatis之分页查询:MyBatis PageHelper 您所在的位置:网站首页 pagehelper 配置不查count MyBatis之分页查询:MyBatis PageHelper

MyBatis之分页查询:MyBatis PageHelper

2023-03-25 12:19| 来源: 网络整理| 查看: 265

MyBatis,作为目前流行的ORM框架,大大方便了日常开发。而对于分页查询,虽然可以通过SQL的limit语句实现,但是比较繁琐。而MyBatis PageHelper的出现,则解决了这一痛点。这里将介绍如何在Spring Boot、MyBatis的环境中通过MyBatis PageHelper高效方便的实现分页查询

配置

1. 添加Maven依赖

com.github.pagehelper pagehelper-spring-boot-starter 1.2.5

2. 添加配置

在application.properties配置文件中添加MyBatis PageHelper的配置项

# PageHelper 分页插件配置 pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql分页查询

通过 MyBatis PageHelper 进行分页查询实际上非常简单,只需在service(或mapper)方法执行查询前,调用一次 PageHelper.startPage(pageNum,pageSize) 来设置分页查询参数即可,其中pageNum 为记录页数,pageSize 为单页记录数量。此时service(或mapper)方法的查询结果就是分页后的结果了。如果期望获得相关的分页信息,还可以将查询结果封装到PageInfo对象中,以获得总页数、总记录数、当前页数等相关分页信息

现在通过一个实际示例,来具体演示操作,这里我们提供了一个分页查询的Controller

/** * 分页查询 * @param pageNum 记录页数 * @param pageSize 单页记录数量 * @return */ @ResponseBody @RequestMapping("/findPage") public List findPage(@RequestParam int pageNum, @RequestParam int pageSize) { // 设置分页查询参数 PageHelper.startPage(pageNum,pageSize); List studentList = studentService.findList(); for(Student student : studentList) { System.out.println("element : " + student); } // 封装分页查询结果到 PageInfo 对象中以获取相关分页信息 PageInfo pageInfo = new PageInfo( studentList ); System.out.println("总页数: " + pageInfo.getPages()); System.out.println("总记录数: " + pageInfo.getTotal()); System.out.println("当前页数: " + pageInfo.getPageNum()); System.out.println("当前页面记录数量: " + pageInfo.getSize()); return pageInfo.getList(); }

service方法中所调用的查询SQL如下所示,可以看到,SQL中无需使用limit语句

... SELECT * FROM user ...

测试结果如下所示

查询第一页:

查询第二页:

Note

PageHelper.startPage(pageNum,pageSize) 只对其后的第一次SQL查询进行分页。故若需进行分页查询,必须每次在service(或mapper)方法执行SQL查询前调用PageHelper.startPage(pageNum,pageSize) 方法

欢迎关注我的公众号:「ProjectDaedalus」,一起去寻找文明的痕迹~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有